﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GuardarFotoSQL
{
    public partial class GuardarImagen : Form
    {
        public GuardarImagen()
        {
            InitializeComponent();
        }

       

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            DialogResult result = dialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                picFoto.Image = Image.FromFile(dialog.FileName);
            }


        }

       

        private void button2_Click(object sender, EventArgs e)
            {
            try
            {
            System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(@"Data Source=LAP_U02728\SQLEXPRESS; Database=Fotos;User ID=sa;password=upcsa2013");
            System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();

        // Estableciento propiedades
        cmd.Connection = conn;
        cmd.CommandText = "INSERT INTO persona VALUES (@Codigo, @Nombre, @DNI, @foto)";

        // Creando los parámetros necesarios
        cmd.Parameters.Add("@Codigo", System.Data.SqlDbType.Int);
        cmd.Parameters.Add("@Nombre", System.Data.SqlDbType.NVarChar);
        cmd.Parameters.Add("@DNI", System.Data.SqlDbType.Int);
        cmd.Parameters.Add("@foto", System.Data.SqlDbType.Image);

        // Asignando los valores a los atributos
        cmd.Parameters["@Codigo"].Value = int.Parse(txtCodigo.Text);
        cmd.Parameters["@Nombre"].Value = txtNombre.Text;
        cmd.Parameters["@DNI"].Value = int.Parse(txtDNI.Text);
        

        // Asignando el valor de la imagen

        // Stream usado como buffer
        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        // Se guarda la imagen en el buffer
        picFoto.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        // Se extraen los bytes del buffer para asignarlos como valor para el
        // parámetro.
        cmd.Parameters["@foto"].Value = ms.GetBuffer();

        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
        }
        catch (System.Exception ex)
        {
        MessageBox.Show(ex.Message);
        }
        MessageBox.Show("Registro Guardado Correctamente");
        }

        



    }
}
